
// 刷题
//class Solution {
//    public int trap(int[] height) {
//        int n = height.length;
//        int[] left = new int[n];
//        int[] right = new int[n];
//        // left[i] 表示 i 左边的最高柱子
//        for (int i = 1; i < height.length; i++) {
//            left[i] = Math.max(left[i - 1], height[i - 1]);
//        }
//        for (int i = n - 2; i >= 0; i--) {
//            right[i] = Math.max(right[i + 1], height[i + 1]);
//        }
//        int[] dp = new int[n];
//        int ret = 0;
//        for (int i = 1; i < n - 1; i++) {
//            int min = Math.min(left[i], right[i]);
//            dp[i] = min - height[i];
//            ret += Math.max(dp[i], 0);
//        }
//        return ret;
//    }
//}